package com.cc.common.model

import jakarta.validation.constraints.Min
import jakarta.validation.constraints.NotNull
import org.hibernate.validator.constraints.Range
import java.io.Serializable

/**
 * 查询公共参数
 *
 * @author cc
 * @since 2023-3-10
 */
open class Query<T> : Serializable {

    /**
     * 当前页码
     */
    val page: @NotNull(message = "页码不能为空") @Min(value = 1, message = "页码最小值为 1") Int = 1

    /**
     * 每页条数
     */
    val limit: @NotNull(message = "每页条数不能为空") @Range(
        min = 1, max = 1000, message = "每页条数，取值范围 1-1000"
    ) Int = 10

    /**
     * 排序字段
     */
    val order: String? = null

    /**
     * 是否升序
     */
    val asc = false

    /**
     * 查询入参
     */
    val p: T? = null


}
